package cn.wolfcode.wolf2w.service.impl;

import cn.wolfcode.wolf2w.domain.StrategyTheme;
import cn.wolfcode.wolf2w.query.QueryObject;
import cn.wolfcode.wolf2w.repository.StrategyThemeRepository;
import cn.wolfcode.wolf2w.service.IStrategyThemeService;
import cn.wolfcode.wolf2w.util.PageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StrategyThemeServiceImpl implements IStrategyThemeService {

	@Autowired
	private StrategyThemeRepository strategyThemeRepository;
	@Autowired
	private MongoTemplate template;

	@Override
	public void save(StrategyTheme strategyTheme) {
		strategyTheme.setId(null);
		strategyThemeRepository.save(strategyTheme);
	}

	@Override
	public void update(StrategyTheme strategyTheme) {
		strategyThemeRepository.save(strategyTheme);
	}

	@Override
	public void delete(String id) {
		strategyThemeRepository.deleteById(id);
	}

	@Override
	public StrategyTheme get(String id) {
		return strategyThemeRepository.findById(id).orElse(null);
	}

	@Override
	public List<StrategyTheme> list() {
		return strategyThemeRepository.findAll();
	}

	@Override
	public Page<StrategyTheme> query(QueryObject qo) {
		Query query = new Query();

		return PageUtils.page(template,query,StrategyTheme.class, qo,Sort.by(Sort.Direction.ASC,"_id"));
	}
}
